package _2022.hot100._448_找到所有数组中消失的数字;

import java.util.ArrayList;
import java.util.List;

/**
 * @author： YHSimon
 * @date： 2022-06-07 20:57
 */
public class Solution {
    // 4ms
    public List<Integer> findDisappearedNumbers2(int[] nums){
        int n=nums.length;
        List<Integer> list=new ArrayList<>();
        for(int num:nums){
            int x=(num-1)%n;
            nums[x]+=n;
        }
        for(int i=0;i<n;i++){
            if(nums[i]<=n){
                list.add(i+1);
            }
        }
        return list;
    }

    // 3ms
    public List<Integer> findDisappearedNumbers(int[] nums){
        int n=nums.length;
        List<Integer> list=new ArrayList<>();
        int[] tmp=new int[n+1];
        for(int i:nums){
            tmp[i]=1;
        }
        for(int i=1;i<=n;i++){
            if(tmp[i]==0){
                list.add(i);
            }
        }
        return list;
    }

    public static void main(String[] args) {
        Solution s = new Solution();
        System.out.println(s.findDisappearedNumbers(new int[]{4,3,2,7,8,2,3,1}));
    }
}
